1. Field
The following description relates to a hardware debugging apparatus and method for a software pipelined program.
2. Description of the Related Art
Software pipelining is a technique used to divide software into stages and process executions in a pipeline manner, in an effort to improve the processing performance of a system. Software pipelining may optimize the processing of a loop by making statements within an iteration independent of each other. Software pipelining removes dependencies so that seemingly sequential instructions may be executed in parallel. For example, software pipelining may overlap the execution of multiple iterations of software.
However, by overlapping the execution of several iterations of software, software pipelining makes it difficult to debug a processor. If a trigger signal such as a break point or a watch point occurs during hardware debugging of a software pipelined program, a section of code that should wait for a next iteration may be executed prematurely, or vice-versa. Consequently, a problem may occur in which a variable value of the software pipelined program is not identical with a variable value at the same point of a source program.